package guanchazhe;
import java.util.ArrayList;
import java.util.List;

    //观察者模式     定义对象间的一种一对多的依赖关系，当一个对象的状态发生改变时，所有依赖于它的对象都得到通知并被自动更新。


    //被观察的类
public class Subject {


    //观察者集合
    private List<Observer> observers
            = new ArrayList<Observer>();

    //观察内容
    private int state;

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
        notifyAllObservers();
    }

    //添加观察者
    public void attach(Observer observer){
        observers.add(observer);
    }


    //唤醒所有观察者
    public void notifyAllObservers(){
        for (Observer observer : observers) {
            observer.update();
        }
    }
}